A modern computer system may be conceptually divided into hardware, operating system, and application programs. Hardware (i.e., central processing unit (CPU) or processor, memory, persistent storage devices, and input/output (I/O) devices) provides the basic computing resources. An example of a hardware function is storage. For example, a persistent storage device may be used to maintain data for retrieval by the operating system or an application program. An operating system is a program that acts as an intermediary between the application program layer and the computer hardware. To this end, the operating system is involved in coordinating the use of the hardware resources to enable a broad range of computative tasks (i.e., memory management, hardware resource management, maintaining a file system, processing user-level requests, administrative tasks, networking tasks, etc.). An application program (i.e., compilers, database systems, software, and business programs) defines how these hardware resources are used to solve the computing problems of the users. The users may include people, machines, and other computers that use the application programs, which in turn employ hardware resources to solve numerous types of problems. In doing so, an application program may store, retrieve, or modify data which is stored in a computer system's persistent storage.